#pragma once

#include "Node2D.h"
#include <math/Vector2.h>

namespace liba {
namespace lib3d {
namespace node {

class Void
	: public Node2D
{
	NODE_DEFINITION(Void)
public:
	Void(const Atom& name, Node* parent);
	Void(const Void& rhs);
	virtual ~Void();

	virtual Node* Clone() LIBA_OVERRIDE;

	static const Atom node_name;
	virtual bool on_attribute(xml::Provider * prov, const std::string & name, const std::string & value) LIBA_OVERRIDE;
	virtual math::Rect<float> GetLocalBounds() LIBA_OVERRIDE;

	void SetAnchorPoint(const math::Vector2<float> & value) { this->anchor = value; }
	const math::Vector2<float>& GetAnchorPoint() const { return anchor; }
private:
	math::Vector2<float> dimensions;
	math::Vector2<float> anchor;
};

} // namespace node
} // namespace lib3d
} // namespace liba